home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / answers / dec-faq / pdp8 < prev    next >
Encoding:
Text File  |  1993-06-09  |  37.7 KB  |  827 lines

  1. Newsgroups: alt.sys.pdp8,alt.answers,news.answers
  2. Path: senator-bedfellow.mit.edu!enterpoop.mit.edu!gatech!howland.reston.ans.net!ux1.cso.uiuc.edu!moe.ksu.ksu.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news
  3. From: jones@cs.uiowa.edu (Douglas W. Jones)
  4. Subject: PDP-8 Frequently Asked Questions (posted every other month)
  5. Summary: Answers to common questions about antique DEC PDP-8 computers.
  6.     Those posting to alt.sys.pdp8 should read this.
  7. Sender: news@news.uiowa.edu (News)
  8. Message-ID: <1993Jun9.173754.27638@news.uiowa.edu>
  9. Approved: news-answers-request@MIT.Edu
  10. Date: Wed, 9 Jun 1993 17:37:54 GMT
  11. Expires: Sat, 8 Aug 1992 08:08:08 GMT
  12. Nntp-Posting-Host: pyrite.cs.uiowa.edu
  13. Organization: Computer Science, University of Iowa, Iowa City, Iowa, USA
  14. Keywords: FAQ DEC PDP 8
  15. Followup-To: alt.sys.pdp8
  16. Lines: 808
  17. Xref: senator-bedfellow.mit.edu alt.sys.pdp8:233 alt.answers:395 news.answers:9225
  18.  
  19. Archive-name: dec-faq/pdp8
  20. Last-modified: May. 12, 1993
  21.  
  22. Frequently Asked Questions about the DEC PDP-8 computer.
  23.  
  24.     By Douglas Jones, jones@cs.uiowa.edu
  25.     (with help from many folks)
  26.  
  27. Contents
  28.  
  29.     What is a PDP?
  30.     What is a PDP-8?
  31.     What is the PDP-8 instruction set?
  32.     What does PDP-8 assembly language look like?
  33.     What different PDP-8 models were made?
  34.     What about the LINC-8 and PDP-12?
  35.     Where can I get a PDP-8 today?
  36.     Where can I get PDP-8 documentation?
  37.     What operating systems were written for the PDP-8?
  38.     What programming languages were supported on the PDP-8?
  39.     Where can I get PDP-8 software?
  40.     Where can I get additional information?
  41.     What use is a PDP-8 today?
  42.     Who's Who?
  43.  
  44.  
  45. What is a PDP?
  46.  
  47.     For over a decade, all programmable digital computers sold by
  48.     Digital Equipment Corporation were sold as Programmed Data
  49.     Processors (PDPs) instead of computers.  I have DEC documentation
  50.     that actually calls them "PDPs", so this is not improper usage.
  51.     DEC's first computer, the PDP-1, had a selling price of only
  52.     $120,000 at a time when competing machines were selling for over
  53.     $1,000,000.  Everyone (the government and DEC's stockholders
  54.     included) knew that computers were big and expensive and needed
  55.     a computer center and a large staff; DEC chose to avoid dealing
  56.     with these stereotypes by entirely avoiding the term "computer".
  57.  
  58.     DEC built a number of different computers under the PDP label, with
  59.     a huge range of price and performance.  The largest of these are
  60.     fully worthy of large computer centers with big support staffs.
  61.     Many early DEC computers were not really built by DEC.  With the
  62.     PDP-3 and LINC, for example, customers built the machines using DEC
  63.     parts and facilities; the PDP-5 may also have been built on this
  64.     basis.  Here is the list of PDP computers:
  65.  
  66.     MODEL  DATE  PRICE     BITS  COMMENTS
  67.     =====  ====  ========  ====  =====
  68.     PDP-1  1960  $120,000  18    DEC's first computer
  69.     PDP-2            NA    24    Never built?
  70.     PDP-3                  36    One was built by a customer, not by DEC.
  71.     PDP-4  1962            18    Predecessor of the PDP-7.
  72.     PDP-5  1963   $27,000  12    The ancestor of the PDP-8.
  73.     PDP-6  1964            36    A big computer; 23 built, most for MIT.
  74.     PDP-7  1965  ~$60,000  18    Widely used for real-time control.
  75.     PDP-8  1965   $18,500  12    The smallest and least expensive PDP.
  76.     PDP-9  1966   $35,000  18    An upgrade of the PDP-7.
  77.     PDP-10 1967            36    A PDP-6 successor, great for timesharing.
  78.     PDP-11 1970   $10,800  16    DEC's first and only 16 bit computer.
  79.     PDP-12 1969   $27,900  12    A PDP-8 relative.
  80.     PDP-13           NA          Bad luck, there was no such machine.
  81.     PDP-14                       A ROM-based programmable controller.
  82.     PDP-15 1970   $16,500  18    A TTL upgrade of the PDP-9.
  83.     PDP-16 1972      NA    8/16  A register-transfer module system.
  84.  
  85.     Corrections and additions to this list are welcome!  The prices
  86.     given above are the prices for minimal systems in the year the
  87.     machine was first introduced.  The bits column indicates the word
  88.     size.  It's worth noting that the DEC PDP-10 became the
  89.     DECSYSTEM-20 as a result of marketing considerations, and DEC's
  90.     VAX series of computers began as the Virtual Address eXtension of
  91.     the never-produced PDP-11/78.
  92.  
  93.     It is worth mentioning that there are persistant rumors that the
  94.     the Data General Nova was originally developed as the PDP-X, a
  95.     16-bit multi-register version of the PDP-8.  A prototype PDP-X
  96.     was apparently built at DEC before the design was rejected.
  97.     This and a competing 16-bit design were apparently submitted to
  98.     Harold McFarland at Carnegie-Mellon University for evaluation;
  99.     McFarland (and possibly also Gordon Bell, who was at C-MU at the
  100.     time) evaluated the competing designs and rejected both in favor
  101.     of the design now known as the PDP-11.  (A less common variant on
  102.     this story is that the reason that DEC never produced a PDP-13
  103.     was because this number was assigned to what became the Nova;
  104.     this is unlikely because the PDP-X prototype predated the PDP-11.)
  105.     Both DEC and Data General don't talk publically about these
  106.     stories.
  107.  
  108.     Today, all of the PDP machines are in DEC's corporate past, with the
  109.     exception of the PDP-11 family of minicomputers and microprocessors.
  110.     
  111.  
  112. What is a PDP-8?
  113.  
  114.     The PDP-8 family of minicomputers were built by Digital Equipment
  115.     corporation between 1965 and 1990 (if you include the PDP-5, the
  116.     starting date should be 1963).  These machines were characterized
  117.     by a 12 bit word, with no hardware byte structure, a 4K minimum
  118.     memory configuration, and a simple but powerful instruction set.
  119.     By 1970, the PDP-8 was the best selling computer in the world, and
  120.     many models of the PDP-8 set new records as the least expensive
  121.     computer on the market.  The PDP-8 has been described as the
  122.     model-T of the computer industry because it was the first computer
  123.     to be mass produced at a cost that just about anyone could afford.
  124.  
  125.     C. Gordon Bell (who later was chief architect of the PDP-11 and
  126.     who, as Vice President, oversaw the development of the VAX) says
  127.     that the basic idea of the PDP-8 was not really original with him.
  128.     He gives credit to Seymour Cray (of CDC and later Cray) for the
  129.     idea of a single-accumulator 12 bit minicomputer.  Cray's CDC 160
  130.     family, sold starting around 1959, certainly was a very similar 12
  131.     bit architecture, and the peripheral processors of Cray's first
  132.     supercomputer, the CDC 6600, are also familiar to PDP-8
  133.     programmers.
  134.  
  135.     Note that the CDC 160 and CDC 6600 peripheral processors had
  136.     6 basic addressing modes, with variable length instruction words
  137.     and other features that were far from the simple elegance of the
  138.     PDP-8.  Despite its many modes, the CDC architecture lacked the
  139.     notion of current page addressing, and the result is that for
  140.     examples that don't involve indexing, PDP-8 code is frequently
  141.     just as effective as the code on the more complex CDC 12-bit
  142.     minicomputers.
  143.  
  144.  
  145. What is the PDP-8 instruction set?
  146.  
  147.     The PDP-8 word size is 12 bits, and the basic memory is 4K
  148.     words.  The minimal CPU contained the following registers:
  149.  
  150.         PC - the program counter, 12 bits.
  151.         AC - the accumulator, 12 bits.
  152.         L  - the link, 1 bit, commonly prefixed to AC as <L,AC>.
  153.  
  154.     It is worth noting that many operations such as procedure linkage
  155.     and indexing, which are usually thought of as involving registers,
  156.     are done with memory on the PDP-8 family.
  157.  
  158.     Instruction words are organized as follows:
  159.          _ _ _ _ _ _ _ _ _ _ _ _
  160.         |_|_|_|_|_|_|_|_|_|_|_|_|
  161.         |     | | |             |
  162.         |  op |i|z|    addr     |
  163.  
  164.         op   - the opcode.
  165.         i    - the indirect bit (0 = direct, 1 = indirect).
  166.         z    - the page bit (0 = page zero, 1 = current page).
  167.         addr - the word in page.
  168.  
  169.     The top 5 bits of the 12 bit program counter give the current page,
  170.     and memory addressing is also complicated by the fact that absolute
  171.     memory locations 8 through 15 are incremented prior to use when
  172.     used for indirect addressing.  These locations are called the
  173.     auto-index registers (despite the fact that they are in memory),
  174.     and they allow the formulation of very tightly coded array
  175.     operations.
  176.  
  177.     The basic instructions are:
  178.  
  179.         000 - AND - and operand with AC.
  180.         001 - TAD - add operand to <L,AC> (a 13 bit value).
  181.         010 - ISZ - increment operand and skip if result is zero.
  182.         011 - DCA - deposit AC in memory and clear AC.
  183.         100 - JMS - jump to subroutine.
  184.         101 - JMP - jump.
  185.         110 - IOT - input/output transfer.
  186.         111 - OPR - microcoded operations.
  187.  
  188.     The ISZ and other skip instructions conditionally skip the next
  189.     instruction in sequence.  The ISZ is commonly used to increment a
  190.     loop counter and skip if done, and it is also used as an general
  191.     increment instruction, either followed by a no-op or in contexts
  192.     where it is known that the result will never be zero.
  193.  
  194.     The subroutine calling sequence involves putting the return
  195.     address in relative word zero of the subroutine, with execution
  196.     starting with relative word one.  Return from subroutine is done
  197.     with an indirect jump through the return address.  Subroutines
  198.     frequently increment their return addresses to index through
  199.     inline parameter lists or to provide return codes by conditionally
  200.     skipping the next instruction.
  201.  
  202.     The IOT instruction has the following form:
  203.          _ _ _ _ _ _ _ _ _ _ _ _
  204.         |1|1|0|_|_|_|_|_|_|t|c|s|
  205.         |     |           |     |
  206.         |     |   device  | op  |
  207.  
  208.     The IOT instruction specifies one of up to 8 operations on one of
  209.     64 devices.  Typically (but not universally), each bit of the op
  210.     field evokes an operation as follows:  If the s bit is set, the
  211.     instruction causes a skip if the device is ready, if the c bit is
  212.     set, the device ready status is reset and, for some devices, AC is
  213.     also cleared, and if the t bit is set, data is either ored with AC
  214.     or output from AC to the device.  Prior to the PDP-8/E, there were
  215.     severe restrictions on the interpretation of the t, c and s bits.
  216.  
  217.     IOT instructions may be used to initiate data break transfers from
  218.     block devices such as disk or tape.  The term "data break" was,
  219.     for years, DEC's preferred term for cycle-stealing direct-memory-
  220.     access data transfers.
  221.  
  222.     Some CPU functions are accessed only by IOT instructions.  For
  223.     example, interrupt enable and disable are IOT instructions, as
  224.     are instructions controlling the optional memory management
  225.     unit that is needed to address more than 4K words.
  226.  
  227.     A wide variety of operations are available through the OPR
  228.     microcoded instructions:
  229.              _ _ _ _ _ _ _ _ _ _ _ _
  230.     Group 1 |1|1|1|0|_|_|_|_|_|_|_|_|
  231.                  1                - CLA - clear AC
  232.                    1              - CLL - clear the L bit
  233.                          1            - CMA - ones complement AC
  234.                            1          - CML - complement L bit
  235.                                    1  - IAC - increment <L,AC>
  236.                              1 0 0    - RAR - rotate <L,AC> right
  237.                              0 1 0    - RAL - rotate <L,AC> left
  238.                          1 0 1    - RTR - rotate <L,AC> right twice
  239.                          0 1 1    - RTL - rotate <L,AC> left twice
  240.  
  241.     In general, the above operations can be combined by oring the
  242.     bit patterns for the desired operations into a single instruction.
  243.     If none of the bits are set, the result is the NOP instruction.
  244.     When these operations are combined, they operate top to bottom
  245.     in the order shown above.  The exception to this is that IAC cannot
  246.     be combined with the rotate operations on some models, and attempts
  247.     to combine rotate operations have different effects from one model
  248.     to another (for example, on the PDP-8/E, the rotate code 001 means
  249.     swap 6 bit bytes in the accumulator, while previous models took
  250.     this to mean something like "shift neither left nor right 2 bits").
  251.              _ _ _ _ _ _ _ _ _ _ _ _
  252.     Group 2 |1|1|1|1|_|_|_|_|_|_|_|0|
  253.                        1     0        - SMA - skip on AC < 0  \
  254.                          1   0        - SZA - skip on AC = 0   > or
  255.                            1 0        - SNL - skip on L /= 0  /
  256.                        0 0 0 1        - SKP - skip unconditionally
  257.                        1     1        - SPA - skip on AC >= 0 \
  258.                          1   1        - SNA - skip on AC /= 0  > and
  259.                            1 1        - SZL - skip on L = 0   /
  260.                      1                - CLA - clear AC
  261.                                1      - OSR - or switches with AC
  262.                                  1    - HLT - halt
  263.  
  264.     The above operations may be combined by oring them together,
  265.     except that there are two distinct incompatible groups of skip
  266.     instructions.  When combined, SMA, SZA and SNL, skip if one or the
  267.     other of the indicated conditions are true, while SPA, SNA and SZL
  268.     skip if all of the indicated conditions are true (logical and).
  269.     When combined, these operate top to bottom in the order shown;
  270.     thus, the accumulator may be tested and then cleared.  Setting
  271.     the halt bit in a skip instruction is a crude but useful way to
  272.     set a breakpoint for front-panel debugging.  If none of the bits
  273.     are set, the result is an alternative form of no-op.
  274.  
  275.     A third group of operate microinstructions (with a 1 in the least
  276.     significant bit) deals with the optional extended arithmetic
  277.     element to allow such things as hardware multiply and divide, 24
  278.     bit shift operations, and normalize.  These operations involve
  279.     an additional data register, MQ or multiplier quotient, and a small
  280.     step count register.  On the PDP-8/E and successors, MQ and the
  281.     instructions for loading and storing it were always present, even
  282.     when the EAE was absent, and the EAE was extended to provide a
  283.     useful variety of 24 bit arithmetic operations.
  284.  
  285.  
  286. What does PDP-8 assembly language look like?
  287.  
  288.     Here is an example:
  289.  
  290.     START,    CLA CLL        / Clear everything
  291.         TAD    X    / Load X
  292.         AND I    Y    / And with the value pointed to by Y
  293.         DCA    X    / Store in X
  294.         HLT        / Halt
  295.  
  296.     X,    1         / A variable
  297.     Y,    7         / A pointer
  298.  
  299.     Note that labels are terminated by a comma, and comments are
  300.     separated from the code by a slash.  There are no fixed fields
  301.     or column restrictions.  The "CLA CLL" instruction on the first
  302.     line is an example of the microcoding of two of the Group 1
  303.     operate instructions.  CLA alone has the code 7200 (octal),
  304.     while CLL has the code 7100; combining these as "CLA CLL" produces
  305.     7300, the instruction to clear both AC and the link bit.  As a
  306.     general rule, except when memory reference instructions are
  307.     involved, the assembler simply ors together the values of all
  308.     blank separated fields between the label and comment.
  309.     
  310.     Indirection is indicated by the special symbol I in the operand
  311.     field, as in the third line of the example.  The typical PDP-8
  312.     assembler has no explicit notation to distinguish between page zero
  313.     and current page addresses.  Instead, the assembler is expected to
  314.     note the page holding the operand and automatically generate the
  315.     appropriate mode.  If the operand is neither in the current page
  316.     nor page zero, some assemblers will raise an error, others will
  317.     automatically generate an indirect pointer to the off-page operand
  318.     (This feature should be avoided!).
  319.  
  320.     Note, in the final two lines of the example, that there is no
  321.     "define constant" pseudo-operation.  Instead, where a constant
  322.     is to be assembled into memory, the constant takes the place of
  323.     the op-code field.
  324.  
  325.     The PDP-8 has no immediate addressing mode, but some assemblers
  326.     provide an optional mechanism to allow the programmer to ignore
  327.     this lack:
  328.  
  329.         TAD    (3)    / add 3, from memory on the current page.
  330.         TAD    [5]    / add 5, from memory on page zero.
  331.         JMP I    (LAB)    / jump indirect through the address of LAB.
  332.  
  333.     Assemblers that support this automatically fill the end of each page
  334.     with constants defined in this way that have been accumulated during
  335.     the assembly of that page.
  336.  
  337.     Arithmetic is allowed in operand fields and constant definitions,
  338.     but expressions are evaluated in strict left-to-right order, as
  339.     shown below:
  340.  
  341.         TAD    X+1    / add the contents of the location after X.
  342.         TAD    (X-1)    / add the address of the location before X.
  343.  
  344.     Other operators allowed included and (&), or (!), multiply (^) and
  345.     divide (%), as well as a unary sign (+ or -).  Unfortunately, one
  346.     of the most widely used assemblers, PAL 8, has trouble when unary
  347.     operators are mixed with multiplication or division.
  348.     
  349.     Generally, identifiers are not limited in length, but only the
  350.     first 6 characters are significant.  All numeric constants are
  351.     in octal, unless a DECIMAL pseudo-op has been used to change number
  352.     base (change back with the OCTAL pseudo-op).
  353.  
  354.     Other assembly language features are illustrated below:
  355.  
  356.     / Comments may stand on lines by themselves
  357.                 / Blank lines are allowed
  358.  
  359.         *200        / Set the assembly origin to 200 (octal)
  360.  
  361.     NL0002=    CLA CLL CML RTL    / Define new opcode NL0002.
  362.  
  363.         NL0002        / Use new opcode (load 0002 in AC)
  364.         JMP    .-1    / Jump to the previous instruction
  365.  
  366.     X1=    10        / Define X1 (an auto-index register address)
  367.  
  368.         TAD I    X1    / Use autoindex register 1
  369.  
  370.         IAC; RAL    / Multiple instructions on one line
  371.  
  372.         $        / End of assembly
  373.  
  374.     The assembly file ends with a line containing a $ (dollar sign)
  375.     not in a comment field.
  376.  
  377.  
  378. What different PDP-8 models were made?
  379.  
  380.     The total sales figure for the PDP-8 family is estimated at over
  381.     300,000 machines.  Over 8500 of these were sold prior to 1970.
  382.     During the PDP-8 production run, a number of models were made, as
  383.     listed in the following table.  Of these, the PDP-8/E is generally
  384.     considered to be the definitive machine.  If the PDP-8 is
  385.     considered to be the Model T of the computer industry, perhaps
  386.     the PDP-8/E should be considered to be the industry's Model A.
  387.  
  388.     MODEL    DATES    SALES   COST    TECHNOLOGY    REMARKS
  389.  
  390.     PDP-5    63-65            Transistor    Limited compatibility
  391.     PDP-8    65-68     >1000    $18,500    Transistor    Table-top or rack
  392.     LINC-8    66-69    153    $38,500    Transistor    Rack only
  393.     PDP-8/S    66-70?    >1000?    $10,000    Transistor     Incompatable, slow!
  394.     PDP-8/I    68-70?    >2000?    $12,800    TTL        Pedistal or rack
  395.     PDP-8/L    68-70?    >2000?     $8,500    TTL        Scaled down 8/I (1)
  396.     PDP-12    69-71    3500    $27,900    TTL        Followup to LINC-8
  397.     PDP-8/E    70-78    >10K?     $7,390    TTL MSI    Omnibus Table-top or rack
  398.     PDP-8/F    72-78?    >10K?    <$7K    TTL MSI Omnibus Based on 8/E CPU
  399.     PDP-8/M    72-78?    >10K?    <$7K    TTL MSI Omnibus OEM version of 8/F
  400.     PDP-8/A    75-84?    >10K?    <$7K    TTL LSI Omnibus New CPU or 8/E CPU
  401.     VT78 (2)78-80    >    ?    Microprocessor  Intersil IM6100
  402.     Dm I (3)80-84            Microprocessor    Harris 6120
  403.     Dm II    82-86         $1,435    Microprocessor    Harris 6120
  404.     Dm III    84-90         $2,695    Microprocessor
  405.     Dm III+    85-90            Microprocessor
  406.  
  407.     Notes   (1) Memory upgrade to 32K words was eventually sold.
  408.         (2) The VT78 was also known as the DECstation 78.
  409.         (3) Dm stands for DECmate.
  410.  
  411.     When possible, the costs given in the above table are for a minimal
  412.     system in the first year of production; for most PDP-8 systems,
  413.     such a system would have 4K of main memory, a console teletype,
  414.     and the minimal software needed to use the machine (FOCAL, BASIC,
  415.     or a paper-tape based assembler).  Additional information on costs
  416.     and production is needed!
  417.  
  418.     The above list does not include many PDP-8 variants sold by DEC
  419.     to meet the needs of various special users.  For example, the
  420.     Industrial-8 was really just a PDP-8/E with a different nameplate
  421.     and color scheme.  Burger King had thousands of PDP-8/M based
  422.     point-of-sale systems with no standard peripherals.  In addition,
  423.     DEC made many peripheral controllers for the PDP-11 and PDP-15
  424.     that used IM6100 and 6120 microprocessors from Intersil and Harris.
  425.  
  426.     The last years of the PDP-8 family were dominated by the DECmate
  427.     machines.  DEC sold these primarily as word processing systems,
  428.     and in the end, they chose to obscure the ability of the DECmate
  429.     systems to run any software other than WPS, DEC's word processing
  430.     system.
  431.  
  432.     The following PDP-8 compatible or semi-compatible machines were
  433.     made and sold by others; very little is known about many of these:
  434.  
  435.     MODEL        DATE    MAKER, NOTES
  436.  
  437.     MP-12        6?    Fabritek
  438.     TPA        68?    Hungarian, possibly a DEC PDP-8/L in drag
  439.     DCC-112        70-71    Digital Computer Controls
  440.     DCC-112H    71    Digital Computer Controls
  441.     6100 Sampler    7?    Intersil, their IM6100 promotional kit
  442.     Intercept    7?    Intersil, based on IM6100
  443.     Intercept Jr    7?    Intersil, based on IM6100
  444.     PCM-12        7?    Pacific CyberMetrix, based on Intercept bus
  445.     SBC-8        84-88    CESI, Based on IM6120, SCSI bus
  446.     
  447.  
  448. What about the LINC/8 and PDP-12?
  449.  
  450.     Wesley Clark, then at Lincoln Labs, developed the LINC, or
  451.     Laboratory INstrumentation Computer, as a personal laboratory
  452.     computer in the early 1960's.  He developed it in response to
  453.     the needs of Mary Brazier, a neurophysiologist at MIT who needed
  454.     better laboratory tools.
  455.  
  456.     When Lincoln Labs decided that the LINC did not fit their mission,
  457.     a group at the the National Institute of Health funded an
  458.     experiment to see if the LINC would be a productive tool in the
  459.     life sciences.  As a result of this project, 12 LINCs were
  460.     built and debugged, each by its eventual user.
  461.  
  462.     The LINC was built using DEC's first family of logic modules,
  463.     and along with the CDC 160, it paved the way for the PDP-5 and
  464.     PDP-8.
  465.  
  466.     When compared with the PDP-8, the LINC instruction set was not
  467.     as well suited for general purpose computation, but the common
  468.     peripherals needed for lab work such as analog to digital and
  469.     digital to analog converters were all bundled into the LINC
  470.     system.  Users judged it to be a superb laboratory instrument.
  471.  
  472.     One of the major innovations introduced with the LINC was the
  473.     LINCtape.  These tapes could be carelessly pocketed or dropped on
  474.     the floor without fear of data loss, and they allowed random
  475.     access to data blocks.  DEC improved on this idea slightly to
  476.     make their DECtape format, and DECtape was widely used with all
  477.     DEC computers made in the late 1960's and early 1970's.
  478.  
  479.     Within a year of the introduction of the PDP-8, DEC released the
  480.     LINC-8, a machine that combined a PDP-8 with a LINC in one
  481.     package.  This was not a general purpose dual processor, in the
  482.     sense of allowing both machines to execute in parallel, but
  483.     rather, a machine with the hardware of both but restrictions
  484.     that effectively prevented more than one from running at a time.
  485.  
  486.     The sales success of the LINC-8 led DEC to re-engineer the
  487.     machine using TTL logic in the late 1960's; the new version was
  488.     originally developed as the LINC-8/I, but it was sold as the
  489.     PDP-12; thousands were sold.  Both the LINC-8 and the PDP-12 had
  490.     impressive consoles, with full sets of lights and switches for
  491.     the registers of each processor.
  492.  
  493.     These machines could run essentially any PDP-8 or LINC software,
  494.     but because they included instructions for switching between
  495.     modes, a third body of software was developed that required
  496.     both instruction sets.
  497.  
  498.     One feature of LINC and LINC-8 software is the common use of the
  499.     graphic display for input-output.  These machines were some of
  500.     the first to include such a display as a standard component, and
  501.     many programs used the knobs on the analog to digital converter
  502.     to move a cursor on the display in the way we now use a mouse.
  503.  
  504.     LAP, the Linc Assembly Program, was the dominant assembler used
  505.     on the LINC.  WISAL (WISconson Assembly Language) or LAP6-W was
  506.     the version of this assembler that survived to run on the PDP-12.
  507.     Curiously, this includes a PDP-8 assembler written in LINC code.
  508.  
  509.     LAP-6 DIAL (Display Interactive Assembly Language) evolved from
  510.     this on the PDP-12 to became the dominant operating system for
  511.     the PDP-12.  The 8K version of this is DIAL MS (Mass Storage),
  512.     even if it has only two LINCtape drives.  These were eventually
  513.     displaced by the OS/8 variant known as OS/12.
  514.  
  515.  
  516. Where can I get a PDP-8 today?
  517.  
  518.     The CESI machine may still be on the market, for a high price, but
  519.     generally, you can't buy a new PDP-8 anymore.  There are quite a
  520.     few PDP-8 machines to be found in odd places on the used equipment
  521.     market.  They were widely incorporated into products such as
  522.     computer controlled machine tools, X-ray diffraction machines, and
  523.     other industrial and lab equipment.  Many of them were sold under
  524.     the EduSystem marketing program to public schools and universities,
  525.     and others were used to control laboratory instrumentation.
  526.     Reuters bought the tail end of the Omnibus based production run.
  527.  
  528.     If you can't get real hardware, you can get emulators.  Over the
  529.     years, many PDP-8 emulators have been written; the best of these
  530.     are indistinguishable from the real machine from a software
  531.     prespective, and on a modern high-speed RISC platform, these
  532.     frequently outperform the hardware they are emulating.
  533.  
  534.     It is worth noting that the PDP-8, when it was introduced in 1965,
  535.     was about as fast as was practical with the logic technology used
  536.     at the time; only by using tricks like memory interleaving or
  537.     pipelining could the machine have been made much faster.
  538.  
  539.     Finally, you can always build your own.  The textbook "The Art of
  540.     Digital Design," second edition, by Franklin Prosser and David
  541.     Winkel (Prentice-Hall, 1987, ISBN 0-13-046780-4) uses the design
  542.     of a PDP-8 as a running example.  Many students who have used this
  543.     book were required to build working PDP-8 systems as lab projects.
  544.  
  545.  
  546. Where can I get PDP-8 documentation?
  547.  
  548.     The 1973 Introduction to Programming was probably DEC's definitive
  549.     manual for this family, but it is out of print, and DEC was in the
  550.     habit of printing much of their documentation on newsprint with
  551.     paperback bindings, which is to say, surviving copies tend to be
  552.     yellow and brittle.
  553.  
  554.     DEC distributed huge numbers of catalogs and programming handbooks
  555.     in this inexpensive paperback format, and these circulate widely
  556.     on the second-hand market.  When research laboratories and
  557.     electronics shops are being cleaned out, it is still common to
  558.     find a few dusty, yellowed copies of these books being thrown in
  559.     the trash.
  560.  
  561.     Maintenance manuals are harder to find, but more valuable.
  562.     Generally, you'll need to find someone who's willing to photocopy
  563.     one of the few surviving copies.  Fortunately, DEC has been
  564.     friendly to collectors, granting fairly broad letters of permission
  565.     to reprint obsolete documentation, and the network makes if fairly
  566.     easy to find someone who has the documentation you need and can
  567.     get copies.
  568.  
  569.  
  570. What operating systems were written for the PDP-8?
  571.  
  572.     A punched paper-tape library of stand-alone programs was commonly
  573.     used with the smallest (diskless and tapeless) configurations from
  574.     the beginning up through the mid 1970's.  Many paper tapes from
  575.     this library survive to the present at various sites!  The minimum
  576.     configuration expected by these tapes is a CPU with 4K memory,
  577.     and a teletype ASR 33 with paper tape reader and punch.
  578.  
  579.     The DECtape Library System was an early DECtape oriented save and
  580.     restore system that allowed a reel of tape to hold a directory of
  581.     named files that could be loaded and run on a 4K system.
  582.     Eventually, this supported a very limited tape-based text editor
  583.     for on-line program development.  This did not use the DECtape's
  584.     block addressable character; the software was based on minimal
  585.     ports of the paper-tape based software described above.
  586.  
  587.     The 4K Disk Monitor System provided slightly better facilities.
  588.     This supported on-line program development and it worked with any
  589.     device that supported 129 word blocks (DECtape, the DF32 disk, or
  590.     the RF08 disk).
  591.  
  592.     MS/8 or the R-L Monitor System, developed starting in 1966 and
  593.     submitted to DECUS in 1970.  This was a disk oriented system,
  594.     faster than the above, with tricks to make it run quickly on
  595.     DECtape based systems.
  596.  
  597.     POLY BASIC, a BASIC only system submitted to DECUS and later sold
  598.     by DEC as part of its EduSystem marketing program.
  599.  
  600.     P?S/8, developed starting in 1971 from an MS/8 foundation.  Runs
  601.     on minimal PDP-8 configurations, supports device semi-independant
  602.     I/O and a file system on a random-access device, including DECtape.
  603.     P?S/8 runs compatably on most PDP-8 machines including DECmates,
  604.     excepting only the PDP-8/S and PDP-5.  P?S/8 is still being
  605.     developed!
  606.  
  607.     OS/8, developed in parallel with P?S/8, became the main PDP-8
  608.     programming environment sold by DEC.  The minimum configuration
  609.     required was 8K words and a random-access device to hold the
  610.     system.  For some devices, OS/8 requires 12K.  There are a large
  611.     number of OS/8 versions that are not quite portable across various
  612.     subsets of the PDP-8 family.
  613.  
  614.     OS8 (no slash) may still be viable.  It requires 8K of main memory,
  615.     an extended arithmetic unit, and DECtape hardware.  Unlike most
  616.     PDP-8 operating systems, it uses a directory structure on DECtape
  617.     compatable with that used on the PDP-10.
  618.  
  619.     TSS/8 was developed in 1968 as a timesharing system.  It required
  620.     a minimum of 12K words of memory and a swapping device.  It was
  621.     the standard operating system on the EduSystem 50 which was sold
  622.     to many small colleges and large public school systems.  Each user
  623.     gets a virtual 4K PDP-8; many of the utilities users ran on these
  624.     virtual machines were only slightly modified versions of utilities
  625.     from the Disk Monitor System or paper-tape environments.
  626.  
  627.     Other timesharing systems developed for the PDP-8 include MULTI-8,
  628.     ETOS, MULTOS, and OMNI-8; some of these required nonstandard
  629.     memory management hardware.  By the mid 1970's, some of these were
  630.     true virtual machine operating systems in the same spirit as IBM's
  631.     VM-370; they could support some version of OS/8 running on a 32K
  632.     virtual PDP-8 assigned to each user.  Some could support different
  633.     user operating systems on each virtual machine, others required
  634.     OS/8 as the user system and only allowed code to execute from
  635.     virtual field zero of a process's virtual memory.
  636.  
  637.     CAPS-8 was a cassette based operating system supporting PAL and
  638.     BASIC.  There are OS/8 utilities to manipulate CAPS-8 cassettes,
  639.     and the file format on cassette is compatible with a PDP-11 based
  640.     system called CAPS-11.
  641.  
  642.     WPS was DEC's word processing system that was widely used on the
  643.     1980's vintage machines with a special WPS keycaps replacing the
  644.     standard keycaps on the keyboard.  This was written in the 1970's,
  645.     and was the primary system used on the DECmate systems.
  646.  
  647.     COS-310, DEC's commercial operating system for the PDP-8, supported
  648.     the DIBOL language.  COS-310 was a derivative of MS/8 and OS/8, but
  649.     with a new text file format.  The file system is OS/8 compatable,
  650.     and a few applications can run under either COS or OS/8.
  651.  
  652.  
  653. What programming languages are supported on the PDP-8
  654.  
  655.     The PAL family of assembly languages are as close to a standard
  656.     assembly language as can be found for the PDP-8.  These produce
  657.     absolute object code and versions of PAL will run on minimally
  658.     configured machines (but with a small symbol table).  Assembly
  659.     of large programs frequently requires far more memory for symbol
  660.     table management.
  661.  
  662.     MACRO-8 was DEC's first macro assembly language for the PDP-8, but
  663.     it was never used outside the paper-tape environment except under
  664.     the OS8 operating system.  MACREL and SABR are assembly languages
  665.     that produce relocatable output.  SABR is the final pass for the
  666.     ALICS II FORTRAN compiler, and MACREL was developed in
  667.     (unfulfilled) anticipation of similar use.  MACREL was heavily
  668.     used by the DECmate group at DEC.
  669.  
  670.     There was also RALF, the relocatable assembler supporting RTPS
  671.     FORTRAN, and FLAP, an absolute assembler derived from RALF.
  672.     Both SABR and RALF/FALP are assemblers that handle their intended
  673.     applications but have quirky and incompatible syntax.
  674.  
  675.     A subset of FORTRAN was supported on both the PDP-5 and the
  676.     original PDP-8.  Surviving documentation describes a DEC compiler
  677.     from 1964 and a compiler written by Information Control Systems
  678.     from 1968.  The latter, ALICS II FORTRAN, was originally a paper
  679.     tape based compiler, but it forms the basis of the OS/8 8K FORTRAN
  680.     compiler, and was also adapted to the Disk Monitor System.
  681.  
  682.     RTPS FORTRAN required 8K and a floating point processor; it had
  683.     real-time extensions and was a full implementation of FORTRAN IV
  684.     (also known as ANSI FORTRAN 66).  OS/8 F4 is RTPS FORTRAN stripped
  685.     of the requirement for hardware floating point (if the hardware is
  686.     missing, it uses software emulation).
  687.  
  688.     FOCAL, an interpretive language comparable to BASIC was available
  689.     on all models of the family, including the PDP-5 and PDP-8/S.
  690.     Varsions of FOCAL run under PS/8, P?S/8 and other systems.
  691.  
  692.     BASIC was also available, and was widely used on PDP-8 systems
  693.     sold under the EduSystem marketing program.  A paper-tape version
  694.     was available that ran in 4K, there were versions that ran under
  695.     OS/8 and TSS/8, there was an 8K stand-alone time-sharing version,
  696.     and there were many others.
  697.  
  698.     DIBOL was DEC's attempt at competing with COBOL in the commercial
  699.     arena.  It was originally implemented under MS/8 but most versions
  700.     were sold to run under the COS operating system.
  701.  
  702.     Algol was available from a fairly early date.
  703.  
  704.     At least two Pascal compilers were developed for the PDP-8.  One
  705.     was a Pascal-S interpreter, written in assembler, the other was a
  706.     Pascal-P compiler with a P-code interpreter written in assembler.
  707.  
  708.     At least two LISP interpreters were written for the PDP-8; one
  709.     runs in 4K, the other can use up to 16K.
  710.  
  711.     TECO, the text editor, is available, and is also a general purpose
  712.     language, and someone is working on a PDP-8 C.  The story of TECO
  713.     on the PDP-8 is convoluted.  Russ Ham implemented TECO under his
  714.     OS8 (without a slash) system.  This version of TECO was pirated by
  715.     the Oregon Museum of Science and Industry (OMSI), where the system
  716.     was ported to PS/8.  Richard Lary and Stan Rabinowitz made it
  717.     more compatible with other versions of TECO, and the result of
  718.     work is the version distributed by DECUS.  RT-11 TECO for the
  719.     PDP-11 is a port of this code.
  720.  
  721.  
  722. Where can I get PDP-8 software?
  723.  
  724.     DECUS, the DEC User Society, is still alive and well, and their
  725.     submission form still lists PAL-8 and FOCAL as languages in which
  726.     they accept submissions!  The DECUS library is available on-line
  727.     by anonymous FTP at acfcluster.nyu.edu in subdirectory DECUS.
  728.     To quote the README file from the current on-line catalog, "Items
  729.     from older DECUS Library catalogs are still also available
  730.     (provided their media can still be read), but machine readable
  731.     catalog information is not available for these."  Direct questions
  732.     by E-mail to INFORMATION@DECUS.ORG.
  733.  
  734.     There is a young but growing FTPable archive of PDP-8 software at
  735.     ftp.telebit.com in directory /pub/pdp8.  Another archive that
  736.     contains considerable PDP-8 related material, along with material
  737.     related to other DEC computers, is at sunsite.unc.edu in directory
  738.     /pub/academic/computer-science/history/.
  739.  
  740.  
  741. Where can I get additional information?
  742.  
  743.     The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
  744.     additional information; this file is included in the FTPable
  745.     archive cited above.  This file gives details of every model
  746.     of the PDP-8, including the small quirks and incompatabilities
  747.     that (to be generous) allow software to determine which model it
  748.     is running on.  These quirks also make it all too easy for
  749.     careless programmers to write almost portable software with very
  750.     obscure bugs.
  751.  
  752.     The mailing list pdp8-lovers@ai.mit.edu reaches a number of PDP-8
  753.     owners and users, not all of whom have USENET feeds.  The USENET
  754.     newsgroup alt.sys.pdp8 is fairly new, but someday, the newsgroup
  755.     and mailing list should be gatewayed to each other.
  756.  
  757.     Many "archival" books have included fairly complete descriptions
  758.     of the PDP-8; among them, "Computer Architecture, Readings and
  759.     Examples" by Gordon Bell and Allen Newell is among the most
  760.     complete (and difficult to read).  Considering Bell's role in the
  761.     design of the PDP-8 and the history of DEC, the description in
  762.     this book should be accurate!
  763.  
  764.  
  765. What use is a PDP-8 today?
  766.  
  767.     What use is a Model T today?  Collectors of both come in the same
  768.     basic classes.  First, there are antiquarians who keep an old one
  769.     in the garage, polished and restored to new condition but hardly
  770.     ever used.  Once a year, they warm it up and use it, just to prove
  771.     that it still works, but they don't have much practical use.
  772.  
  773.     PDP-8 systems maintained by antiquarians are frequently in
  774.     beautiful shape.  Antiquarians worry about dust, chipped paint,
  775.     and missing switches, and they establish newsgroups and mailing
  776.     lists to help them locate parts and the advice needed to fix their
  777.     machines.
  778.  
  779.     In the second class are those who find old machines and soup them
  780.     up, replacing major parts to make a hotrod that only looks like
  781.     the original from the outside, or keeping the old mechanism and
  782.     putting it to uses that were never intended.  Some PDP-8 owners,
  783.     for example, are building PDP-8 systems with modern SCSI disk
  784.     interfaces!  There is serious interest in some quarters in
  785.     constructing an omnibus board that would support an IDE disk of
  786.     the variety that was mass-produced for the IBM PC/AT.
  787.  
  788.     Last, there are the old folks who still use their old machines for
  789.     their intended purposes long after any sane economic analysis
  790.     would recommend such use.  If it ain't broke, don't fix it, and if
  791.     it can be fixed, why bother replacing it?  Both Model T Fords and
  792.     the classic PDP-8 machines are simple enough that end users can
  793.     maintain and repair them indefinitely.  All you need to keep a
  794.     vintage -8 running are a stock of inexpensive silicon diodes and
  795.     a stock of 2N3639B or better, 2N3640 transistors.
  796.  
  797.     Unlike most modern personal computers, PDP-8 systems were
  798.     routinely sold with complete maintenance manuals; these included
  799.     schematic diagrams, explanations of not only how to use the
  800.     devices, but how they are built, and suggestions to those
  801.     considering building their own peripherals.  Compared with many
  802.     so-called "open systems" of today, the PDP-8 seems to have been far
  803.     better documented and far more open.
  804.  
  805.     Finally, the PDP-8 is such a minimal machine that it is an excellent
  806.     introduction to how computers really work.  Over the years, many
  807.     students have built complete working PDP-8 systems from scratch as
  808.     lab projects, and the I/O environment on a PDP-8 is simple enough
  809.     that it is a very appropriate environment for learning operating
  810.     system programming techniques.
  811.  
  812. Who's Who?
  813.  
  814.     C. Gordon Bell is generally credited with the original design of
  815.     the PDP-8.  He also recommended what became the PDP-11 when that
  816.     design was competing with the design that probably became the NOVA,
  817.     and as vice president of research, he oversaw the development of
  818.     the DEC VAX family.
  819.  
  820.     Ben Gurley designed most of the big DEC machines, starting with
  821.     the PDP-1.
  822.  
  823.     Ken Olson ran DEC from the beginning.
  824.  
  825.     Wesley Clark developed the LINC while working at Lincoln Labs;
  826.     this was the first 12 bit minicomputer built with DEC parts.
  827.